//不对
#include <bits/stdc++.h>
using namespace std;
int n;
int a[200005];
int b[200005];
int ans = 0;

int main() {
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        b[i] = a[i]; //复制
    }
    sort(b + 1, b + n + 1); //排序
    int mx = 0; //最大值
    int mn = 1e9; //最小值
    for (int i = 1; i <= n; i++) {
        mn = min(mn, a[i]); //求最大值
        mx = max(mx, a[i]); //求最小值
        if (mx == b[i]) {
            //如果这一段的最大值和排序后的当前值相等，那么就将这一段排序
            ans += mx - mn; //计算排序花费
            mx = 0; //重新初始化最大值，最小值
            mn = 1e9;
        }
    }
    cout << ans;
    return 0;
}
